添加对应用程序的服务引用

本文关键字:服务 引用 应用程序 添加 | 更新日期: 2023-09-27 18:31:56

尝试向我的 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方法的有效调用进行身份验证的用户才能访问您的服务。