我们将 WCF Ria 服务与 silverlight 5 项目一起使用。对于身份验证,我们使用自定义成员提供程序。RIA 服务类库中的 WCF Ria 服务。客户端身份验证正在运行。我们使用 WebContext.Current.User.Name 访问当前用户名。但服务器端 ServiceContext.User 为空。如果我们使用 [RequireAuthentication] attr。在 DomainServices 中总是返回拒绝访问。我们如何将 WebContext.Current.user 推送到 ServiceContext.user。我阅读了几个文档和教程,但每次测试都失败了。
代码示例:
CustomMembershipProvider.cs:
public class CustomMembershipProvider : MembershipProvider {
public override bool ValidateUser(string username, string password)
{
using (var context = new TimEntities())
{
var user = context.User.FirstOrDefault(u => u.Username == username &&
u.Password == password);
return user != null;
}
}
}
身份验证域服务:
[EnableClientAccess]
public class AuthenticationDomainService : AuthenticationBase<AuthUser>
{}
public class AuthUser : UserBase
{}
应用程序.Xaml.Cs:
var webContext = new WebContext();
var formsAuth = new FormsAuthentication();
var authContext = new AuthenticationDomainContext();
formsAuth.DomainContext = authContext;
webContext.Authentication = formsAuth;
ApplicationLifetimeObjects.Add(webContext);