2011-06-20 6 views

答えて

1

- 基本的な&ダイジェスト認証をサポートするASP.NETの認証モジュールの作成方法を説明し、このexcellent articleを参照してください。

あなたはフォーム認証スキームしか考えていないので、実際にフォームスキームを書く必要はありません。ビルド中のForms Authenticateモジュールは非常に拡張性があり(柔軟性も高い)

0

グーグルで調べたところ、this blogpostが見つかりました。それはどのようにそれを行うには非常によく説明します。基本的にカスタムHTTPモジュールを作成し、HttpApplicationオブジェクトのOnAuthenticateRequestイベントを処理する必要があります。

2

Page.Userだけモジュールまたはglobal.asax介しHttpApplication.AuthenticateRequestのハンドラに設定されるべきであるPage.Context.User返します。 IPrincipalのカスタム実装を提供すると、IIdentityのカスタム実装を返すことができます。例えば

あなたが独自の認証モジュールを記述する必要が
public class App : HttpApplication 
{ 
    public App() 
    { 
     AuthenticateRequest += App_AuthenticateRequest; 
    } 

    void App_AuthenticateRequest(object sender, EventArgs e) 
    { 
     var cookie = Request.Cookies[FormsAuthentication.FormsCookieName]; 

     if (cookie == null) return; 

     var userData = GetUserData(cookie.Value); 
     var userIdentity = new MyIdentity(userData); 

     Context.User = new MyPrincipal(userIdentity); 
    } 

    private string GetUserData(string value) 
    { 
     try 
     { 
      var ticket = FormsAuthentication.Decrypt(value); 
      return ticket == null ? null : ticket.UserData; 
     } 
     catch (ArgumentException) 
     { 
      Response.Cookies.Remove(FormsAuthentication.FormsCookieName); 
      return null; 
     } 
    } 
} 
関連する問題