2010-08-20 48 views
0

如何验证开放ID的文本框为计算器的,我使用的dotnet开放ID 我所做的是验证的OpenID文本

<asp:CustomValidator runat="server" ID="openidValidator" ErrorMessage="Invalid OpenID Identifier" 
    ControlToValidate="txtOpenId" EnableViewState="false" OnServerValidate="openidValidator_ServerValidate" 
    ValidationGroup="validateOpenID" /> 

在后面

protected void openidValidator_ServerValidate(object source, ServerValidateEventArgs args) 
    { 

     // This catches common typos that result in an invalid OpenID Identifier. 
     args.IsValid = Identifier.IsValid(args.Value); 
    } 

的代码,但它是没有在所有情况下验证它

+0

你想验证什么?用户还没有输入一些简单的错字?如果他们输入了有效的网址,即使它是错误的,我也不知道如何在没有尝试的情况下捕捉到该网址。什么是你想要的东西的例子,它不是? – Rup 2010-08-20 10:12:52

+0

例如,如果有人只是输入一个字母或类似的东西 – Mac 2010-08-20 10:14:55

回答

1

验证OpenID标识符有两个步骤。一种是在没有任何网络访问的情况下验证其形式。并Identifier.IsValid这样做。是的,单个字母实际上是一个有效的OpenID“用户提供的标识符”。它可能是由本地网络上另一台计算机托管的OpenID标识符。除非你真的采取下一步,即OpenIdRelyingParty.CreateRequest并查看它是否失败,否则无法确定。

StackOverflow上通过看会是什么可能标识符和书面拒绝标识符看起来不像真正的可能性标识符(虽然在技术上,他们可能是)自定义规则需要一些额外的验证步骤。根据我所知,这些内容没有全面的列表,所以如果您需要额外的验证,您必须编写自己的逻辑。只是在允许标识符方面犯错,因为如果您对选择的输入过于挑剔,可能会勾选某些用户。

0

我想你想为你的文本框设置限制。为此你有范围字段验证器,使用它你可以设置字母或数字的限制。你可以使用属性窗口来做到这一点。