|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.Security;
using System.Security.Permissions;
namespace WcfServiceCommon
{
#if(DEBUG)
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, MaxItemsInObjectGraph = 131072, IncludeExceptionDetailInFaults = true)]
#else
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, MaxItemsInObjectGraph = 131072, IncludeExceptionDetailInFaults = false)]
#endif
public abstract class WcfServiceBase
{
public void Authorize()
{
string[] groups = null;
Type serviceType = this.GetType();
var configItem = Config.GetServiceConfig(serviceType);
if (null != configItem)
{
groups = configItem.Item.AuthorizedGroups.Split(',');
}
if (null != groups)
{
PrincipalPermission[] pps = new PrincipalPermission[groups.Length];
for (int i = 0; i < groups.Length; i++)
{
pps[i] = new PrincipalPermission(null, groups[i]);
}
PrincipalPermission pp = pps[0];
if (groups.Length > 0)
{
for (int i = 1; i < groups.Length; i++)
{
pp = (PrincipalPermission)pp.Union(pps[i]);
}
}
pp.Demand();
}
else
throw new SecurityException("Group is null");
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Since 2001 I've been writing .NET applications in C# and architecting n-tier applications in the enterprise. Before that I worked as a tech writer for nine years. Don't bother doing the math. I'm old. Ever since I laid eyes on my first Commodore PET, I've been a technologist. I've worked in the software world for fifteen years. I started as a technical writer and learned to code from the best engineers as I worked with them in creating technical documentation. It was then that I learned that writing code was more fun and frankly easier than writing about code. I've been doing both ever since. You can visit my blog at http://www.tsjensen.com/blog.