Ich versuche, Steuerelemente basierend auf Benutzerberechtigungen mithilfe eines benutzerdefinierten Sicherheitsframeworks zu deaktivieren/aktivieren. Ich versuche, diesen Code in der Codebehind-Datei zu verwendenMVC3-Zugriffssteuerung
protected void OnLoadComplete(object sender, EventArgs e)
{
if ((ViewData[Constants.Permission]).Equals(Security.UserAccess.ReadOnlyAccess))
{
foreach (var control in this.Page.Controls )
{
control.IsReadOnly = true;
}
}
}
Die IsReadOnly Eigenschaft der Steuerung ist jedoch nicht verfügbar. Gibt es eine Möglichkeit, dies zu beheben oder einen besseren Weg, dies zu erreichen?
--- --- Aktualisierung
Controller.cs
[Proxy.AimsAccessLevel]
public ActionResult Edit(int clientId)
{
ClientId = clientId;
//SetClientDetails();
var Selection = new SelectionArgs(clientId, null);
if (Selection.SelectionFlag == null || Selection.SelectionFlag == "N")
Selection.EffectiveDate = new DateTime(DateTime.Now.Year + 1, 1, 1);
return View(Selection);
}
proxy.cs
public class AccessLevel : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
Roles = Constants.AccessLevel.FullEdit + Constants.AccessLevel.ReadOnly.ToString() +
Constants.AccessLevel.RestrictedEdit;
return base.AuthorizeCore(httpContext);
}
}
MVC nicht über einen Code-Behind . Verwenden Sie MVC oder WebForms? –
ich benutze mvc ich benutze <% @ Seite CodeBehind = "Edit.aspx.cs" Title = "" Language = "C#" MasterPageFile = "~/Ansichten/Shared/Site.Master" Inherits = "Views.Selection.Edit" %> hat mir keine Fehler –