我正在撰写 WCF REST数据服务。我需要根据url addres(https)提供的登录名和密码添加授权系统。
在每个网址都应该是登录名和密码:
https://myservice.svc/Products()?$orderby=name&login=user_login&pass=user_pass
在服务方我想授权。应检查用户是否具有访问权限 数据。在这种情况下,应检查用户是否具有读取表产品的角色。 角色存储在数据库中。
有没有机会成功?
答案 0 :(得分:0)
实施OnStartProcessingRequest方法。
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class ServiceODataAFR : EntityFrameworkDataService<PortalContext>
{
public static void InitializeService(DataServiceConfiguration config)
{
ValidarAcesso();
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
}
protected override void OnStartProcessingRequest(ProcessRequestArgs args)
{
ValidarAcesso();
base.OnStartProcessingRequest(args);
}
private static void ValidarAcesso()
{
using (var context = new PortalWeb())
{
if (!context.UsuarioEstaNoGrupo(EnumGrupoPermissao.AdministradorAFR.GetTitle()))
{
throw new AddressAccessDeniedException();
}
}
}