试图将服务引用添加到我的 Windows 8 应用程序。但是 asmx 文件位于具有某些角色的登录用户可以查看的文件夹中。就像受保护的文件夹一样,我也在为网站使用 asp.net 会员提供程序。如何添加此引用或对其进行身份验证?
谢谢。
试图将服务引用添加到我的 Windows 8 应用程序。但是 asmx 文件位于具有某些角色的登录用户可以查看的文件夹中。就像受保护的文件夹一样,我也在为网站使用 asp.net 会员提供程序。如何添加此引用或对其进行身份验证?
谢谢。
有一种更简单的方法来授权您的服务用户,这应该可以解决您的一些问题。
首先,将您的服务放在一个公共文件夹中,根本没有授权。这将允许您毫无问题地添加来自 Windows 8 应用程序的引用。
然后,在您的服务中,创建一个方法来验证您的用户:
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 ) );
}
}
此公共方法将是您的 Windows 8 应用程序应调用的第一个方法。
然后使用PrincipalPermission
属性保护所有其他服务方法:
[PrincipalPermission( Roles="Admin, User" )]
public TheMethodForAdminOrUser()
{
// do whatever you want
}
属性将保护您的服务方法的调用,以便只有通过对该Login
方法的有效调用进行身份验证的用户才能访问您的服务。