2010-08-20 44 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

我想你想爲你的文本框設置限制。爲此你有範圍字段驗證器,使用它你可以設置字母或數字的限制。你可以使用屬性窗口來做到這一點。