2

私は既存のアプリケーションにSilverlightサイトを統合しようとしており、ログイン機能を有効にしようとしています。 Silverlightアプリケーションには独自のログインページが必要です。ログインには既存のASP.NETフォーム認証を使用する必要があります。ログインプロシージャの一部として、いくつかの外部コードが呼び出されているため、System.Web.ApplicationServices.AuthenticationServiceが公開するスクリプト可能なメソッドを使用することはオプションではありません。これを行うにはFormsAuthentication.Authenticateを使用しようとしましたが、動作しませんでした。誰かがこれを回避する方法に関するアイデアを持っていますか?カスタムWebサービスでユーザを認証するにはどうすればよいですか?

+0

正確にはこのWebサービスはどこですか? –

+0

これは非常に重複のように見えます:http://stackoverflow.com/questions/890310/silverlight-asp-net-wcf-authentication-2-0 –

+0

問題は似ていますが、私はこれらのソリューションを使用することはできません私はログインする前に外線通話をする必要があります。 –

答えて

2

フォーム認証サポートを実装できるラッパーwebseviceを作成する必要があるように聞こえます。

[ServiceContract] 
    public interface IAuthenticationService 
    { 
     [OperationContract()] 
     string Login(string username, string password, bool isPersistent); 
     [OperationContract()] 
     bool Logout(); 
     [OperationContract()] 
     string IsLoggedIn();  
    } 

をして、私の実装では、カスタムコードを呼び出すことができます。

この

は、例えば、私は私のSilverlightクライアントによって参照されている次のインターフェイスでWCFサービスを作成しましたので、私がやったものですそしてまた、あなたが持っている可能性がログインするたとえば、フォーム認証APIを使用します。

try 
      { 
       //Call you external code here 
       //Then use the membership provider to authenticate 
       if (Membership.ValidateUser(username, password)) 
       { 

        FormsAuthentication.SetAuthCookie(username, isPersistent); 

       } 
      } 
      catch (Exception ex) 
      { 
       Logging.LogException("Error in Login", ex); 
      } 

はまた、あなたがasp.netのcompatが与えるどの有効になっているために、あなたのサービスの実装に使用するクラス定義の上に次の属性を含める必要はありませんあなたがアクセスするHttpContext:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] 
関連する問題