WCF服务由ASP.NET网站托管。 ASP.NET成员资格未在网站中使用。使用“自定义”页面记录用户,记录用户的ID存储在Session(HttpContext.Current.Session)中。
Silverlight(4版)应用程序使用WCF服务。
如何检查当前用户(加载的Silverlight应用程序)是否有权访问某个WCF方法?
我看到几个选项:
你可以请:
一个。建议我如何解决上面列出的任何问题;
OR(可能更好的选择)
湾建议我任何其他方法。
非常感谢你。
答案 0 :(得分:0)
以下是一个例子:
对于持有silverlight控件的页面:
protected void Page_Load(object sender, EventArgs e)
{
this.Silverlight1.InitParameters = "UserID" + HttpContext.Current.Session["UserID"];
}
在App.Xaml.cs
中private void Application_Startup(object sender, StartupEventArgs e)
{
this.Resources.Add("UserId", e.InitParams["UserID"]);
}
答案 1 :(得分:0)
我相信您可以使用OperationContext并使用您的WCF请求发送会话cookie。在服务器端,它将恢复正确的HttpContext.Current.Session,您可以手动执行此操作。
答案 2 :(得分:0)
查看内置的Silverlight 4 Business模板 - 它包含使用WCF RIA服务的用户的验证和授权。
答案 3 :(得分:0)
这是一个魔术......现在HttpContext.Current在每个请求期间都是非空的...不知道为什么......如果你知道为什么可能 - 请告诉我。我可以用它来进行用户授权......