[英]How to invoke WCF RESTful Service in Windows Service in asp.net?
[英]How to tie ASP.NET permissions to WCF service
我正在創建一個具有WCF服務后端的大型ASP.NET 4網站。 我希望網站使用該服務進行登錄和授權。
基本上,當用戶進入登錄頁面時,我希望使用WCF服務作為身份驗證機制,而不是使用成員資格提供程序。
WCF服務已經使用身份驗證和授權(具有模擬功能),因此,如果服務的客戶端嘗試執行沒有權限的服務方法,則它們會收到錯誤。
問題是如何將其與ASP.NET網站聯系在一起?
這是我正在使用的一些示例代碼:
Web服務界面:
[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/>
如果要使用ASP.NET成員資格,則需要編寫自己的成員資格提供程序以對WCF服務進行身份驗證。 您可能需要向WCF服務中添加操作以返回用戶所屬角色的列表。 然后,您可以使用Membership
類來確定用戶是否是特定角色,並根據需要隱藏/顯示UI元素。
有關創建成員資格提供程序的更多信息,請參見http://msdn.microsoft.com/zh-cn/library/f1kyba5e.aspx 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.