如何将open id文本框验证为stackoverflow我使用的是dotnet open id 我所做的是
<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 :(得分:1)
验证OpenID标识符有两个步骤。一种是在没有任何网络访问的情况下验证其形式。而Identifier.IsValid
就是这样做的。是的,单个字母实际上是有效的OpenID“用户提供的标识符”。它可以是由本地网络上的另一台计算机托管的OpenID标识符。除非你真正采取下一步,即OpenIdRelyingParty.CreateRequest
,看看它是否失败,否则无法确定。
StackOverflow通过查看可能的标识符来执行一些额外的验证步骤,并编写自定义规则来拒绝看起来不像真正标识符的标识符(尽管技术上它们可以)。据我所知,目前还没有完整的清单,如果你想进行额外的验证,你必须编写自己的逻辑。只是在允许标识符方面犯了错误,因为如果您对选择的输入过于挑剔,则可能会勾选某些用户。
答案 1 :(得分:0)
我想你想设置文本框的限制。为此你有范围字段验证器,使用它可以设置字母或数字的限制。您可以使用属性窗口执行此操作。