在C#ASP.NET MVC 4網站上工作時遇到以下問題。C#授權從變量設置角色
在我的代碼調用該函數授權,像這樣:
private const string GROUP = "Administrators"; //The group that users have to apply to
[Authorize(Roles = GROUP)]
private string GenerateToken()
{
...
}
但現在這個網站將被部署於多個位置和常量字符串集團已被設置過其他值。在這個例子中,您只需更改值Administrators即可。但我不希望其他用戶打開代碼文件,並有機會這樣做。
所以我創建了一個XML解析器,並從設置XML解析這個值。但是,我如何從一個變量中設置一個常量。這是不可能的,因爲常數是一個常量。但有沒有辦法?
我如何解析XML:
public class Settings
{
public string UserGroup { get; set; }
public Settings(String Loc)
{
Initialize(Loc);
}
private void Initialize(String Loc)
{
using (XmlReader reader = XmlReader.Create(new StringReader(GetXMLAsString(Loc))))
{
reader.ReadToFollowing("UserGroup");
UserGroup = reader.ReadElementContentAsString();
}
}
public string GetXMLAsString(String Loc)
{
XmlDocument doc = new XmlDocument();
doc.Load(Loc);
StringWriter sw = new StringWriter();
XmlTextWriter tx = new XmlTextWriter(sw);
doc.WriteTo(tx);
return sw.ToString();
}
因此,這是可能實現:
private const string GROUP = settings.UserGroup;