Windows8アプリケーションにサービス参照を追加しようとしています。ただし、asmxファイルは、特定のロールを持つログインユーザーが表示できるフォルダー内にあります。保護されたフォルダーのように、私もWebサイトにasp.netメンバーシッププロバイダーを使用しています。この参照を追加または認証するにはどうすればよいですか?
ありがとう。
Windows8アプリケーションにサービス参照を追加しようとしています。ただし、asmxファイルは、特定のロールを持つログインユーザーが表示できるフォルダー内にあります。保護されたフォルダーのように、私もWebサイトにasp.netメンバーシッププロバイダーを使用しています。この参照を追加または認証するにはどうすればよいですか?
ありがとう。
サービスユーザーを承認する簡単な方法があります。これにより、いくつかの問題が解決するはずです。
まず、認証なしでサービスをパブリックフォルダに配置します。これにより、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
メソッドへの有効な呼び出しで認証されたユーザーのみがサービスにアクセスできるようにします。