1

Windows8アプリケーションにサービス参照を追加しようとしています。ただし、asmxファイルは、特定のロールを持つログインユーザーが表示できるフォルダー内にあります。保護されたフォルダーのように、私もWebサイトにasp.netメンバーシッププロバイダーを使用しています。この参照を追加または認証するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

2

サービスユーザーを承認する簡単な方法があります。これにより、いくつかの問題が解決するはずです。

まず、認証なしでサービスをパブリックフォルダに配置します。これにより、Windows8アプリから問題なく参照を追加できます。

次に、サービスで、ユーザーを認証するメソッドを作成します。

public bool Login( string UserName, string Pwd )
{
    // validate the user and create the forms cookie upon succesfull validaition
    if ( IsValid( UserName, Pwd ) ) 
    {
        FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( ... );

        string CookieName = FOrmsAuthentication.FormsCookieName;
        string CookieValue = ticket.Encrypt();

        this.Response.Cookies.Add( new HttpCookie( CookieName, CookieValue ) );
    }
}

このパブリックメソッドは、Windows8アプリが呼び出す最初のメソッドになります。

次に、他のすべてのサービスメソッドを次のPrincipalPermission属性で保護します。

[PrincipalPermission( Roles="Admin, User" )]
public TheMethodForAdminOrUser()
{
    // do whatever you want
}

属性はサービスメソッドの呼び出しを保護し、Loginメソッドへの有効な呼び出しで認証されたユーザーのみがサービスにアクセスできるようにします。

于 2012-04-21T17:32:04.600 に答える