WCF 서비스 백엔드가있는 대규모 ASP.NET 4 사이트를 만들고 있습니다. 사이트에서 로그인 및 승인을 위해 서비스를 사용하고 싶습니다.ASP.NET 권한을 WCF 서비스에 연결하는 방법
기본적으로 사용자가 로그인 페이지로 이동하면 멤버 자격 공급자를 사용하는 대신 WCF 서비스를 인증 메커니즘으로 사용하고자합니다.
WCF 서비스는 이미 인증 및 권한 부여 (가장)를 사용하므로 권한이없는 서비스 메서드를 실행하려고하면 서비스 클라이언트에서 오류가 발생합니다.
질문은 ASP.NET 사이트에서 어떻게 연결합니까?
웹 서비스 인터페이스 :
[ServiceContract]
public interface IService
{
[OperationContract]
bool Foo();
[OperationContract]
void Bar();
}
웹 서비스 : 클라이언트에
public class BackEndService : IService
{
[PrincipalPermission(SecurityAction.Demand, Role="FooRole")]
public bool Foo()
{
return false;
}
[PrincipalPermission(SecurityAction.Demand, Role="Bar")]
public void Bar()
{
//...
}
}
:
public class LoginPage : Page
{
public void LoginButton_Clicked(object sender, EventArgs e)
{
string username = TxtUsername.Value;
string password = TxtPassword.Value;
BackEndService client = new BackEndService();
client.CleintCredentials.Username = username;
client.ClientCredentials.Password = password;
client.Foo(); //if the credentials supplied do not have permissions there will be error
client.Bar();
}
}
을 여기
은 내가 사용하고 일부 샘플 코드 달성하고자하는 목표 PrincipalPermission 특성으로 플래그가 지정된 UI 요소의 기능 중 일부를 사용하여 사용자가 권한이 없다는 것을 발견하기 위해 서비스로 이동할 필요가 없도록해야합니다.또한 사용자의 권한에 따라 일부 UI 요소를로드/언로드해야합니다.
사용자가 볼 수있는 UI 모듈을 반환하려면 내 서비스에 일부 논리를 구워야합니까? UI 요소의 코드에서 PrincipalPermissionAttribute를 사용하는 경우처럼 멤버쉽 공급자 인 것처럼 서비스를 통해 사용 권한을 처리 할 수 있습니까?
감사합니다,
<bleepzter/>
나는 그것을 두려워했다. 나는 회원 자격없이 UI를 숨기고 보여주기위한 자신 만의 논리를 시작할 것입니다. – bleepzter