MVC :: Authorize ActionResult By User?
Mar 25, 2011I know i can authorize an action result for named users
[Code]....
but how do i do it for an unknown username? so i have the username stored in the database
I know i can authorize an action result for named users
[Code]....
but how do i do it for an unknown username? so i have the username stored in the database
this is the first controler which is calling my applciation I am getting all my studentinfo for updating studnetcan i call this et in updateresult Action result?
public ActionResult getresult(StduentInfo et)
{
return PartialView("Student", et);
public ActionResult updateresult(Stdentinfo et)
[code]...
I found a great answer on SO describing how to set up custom user roles, and I've done the same in my project. So in my Login service I have:
public ActionResult Login() {
// password authentication stuff omitted here
var roles = GetRoles(user.Type); // returns a string e.g. "admin,user"
var authTicket = new FormsAuthenticationTicket(
1,
userName,
DateTime.Now,
DateTime.Now.AddMinutes(20), // expiry
false,
roles,
"/");
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName,
FormsAuthentication.Encrypt(authTicket));
Response.Cookies.Add(cookie);
return new XmlResult(xmlDoc); // don't worry so much about this - returns XML as ActionResult
}
And in Global.asax.cs, I have (copied verbatim from the other answer):
protected void Application_AuthenticateRequest(Object sender, EventArgs e) {
var authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null) {
var authTicket = FormsAuthentication.Decrypt(authCookie.Value);
var roles = authTicket.UserData.Split(new Char[] { ',' });
var userPrincipal = new GenericPrincipal(new GenericIdentity(authTicket.Name), roles);
Context.User = userPrincipal;
}
}
Then, in my ServicesController class, I have:
[Authorize(Roles = "admin")]
//[Authorize]
public ActionResult DoAdminStuff() {
...
}
I login as a user with the "admin" role, and that works. Then I call /services/doadminstuff - and I get access denied, even though when I put a breakpoint in Global.asax.cs, I can see that my roles do include "admin". If I comment out the first Authorize attribute (with roles) and just use a plain vanilla Authorize, then I can access the service.
I have to develop an authorize filter in asp.net mvc.I have got five categories of users in my site and my site uses custom created authentication system.Now i have a controller action which should be accessible to 3 out of those five type of users.How to create a filter (basically authorize) and use it which fulfills my requirement?I think i need to create the authorize filter with parameter.I should be able to use something like this in my controller action.
Authorize[UsersType="admin,accountant,operator"]
public ActionResult Test()
{
}
technology used : Asp.net MVC
After browsing the MVC section on CodePlex I noticed that the [Authorize] attribute in MVC returns a HttpUnauthorizedResult() when authorization fails (codeplex AuthorizeAttribute class). In the source of HttpUnauthorizedResult() from CodePlex is the code (I'm not allowed to enter another URL as my rep isn't high enough, but replace the numbers on the URL above with 22929#266476):
// 401 is the HTTP status code for unauthorized access - setting this
// will cause the active authentication module to execute its default
// unauthorized handler context.HttpContext.Response.StatusCode = 401;
In particular, the comment describes the authentication module's default unauthorized handler. I can't seem to find any information on this default unauthorized handler. In particular, I'm not using ormsAuthentication and when authorization fails I get an ugly IIS 401 error page. Does anyone know about this default unauthorized handler, and in particular how FormsAuthentication hooks itself in to override it? I'm writing a really simple app for my football team who confirm or deny whether they can play a particular match. If I enable FormsAuthentication in the web.config the redirect works, but I'm not using FormsAuthentication and I'd like to know if there's a workaround.
I'm trying to add a directory for anon access in IIS 7.5. It works under Web Dev but not IIS 7.5
I'm currently using this web.config in the directory. This is a directory with style sheets:
<?xml version="1.0"?>
Note: As an alternative to hand editing this file you can use theweb admin tool to configure settings for your application. Use the Website->Asp.Net Configuration option in Visual Studio. A full list of settings and comments can be found in machine.config.comments usually located in WindowsMicrosoft.NetFrameworkv2.xConfig
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</configuration>
Update:
I've went to the folder and under Authentication, I've changed anonymous authentication from IIS_USR to pool. This seems to have correct it.
I will reward anyone who provides a very good explanation and resources for understanding this setting. Also, how to apply it globally would be good to know -- for all folders.
I had done a shoppingcart in asp.net and i have to connect it to Authorize.net for payment process.
I dont know anything about this.
I've an application that runs in a localhost.
So I can get the user logon to some recording data or some thing else.
I was thinking if that was possible to put some value in web config that gets the user logon and if that logon is authorizated for that page it let him open else it close the page...
Some one have some idea to accomplish it ?
I have configured forms authentication for my MVC 3 RTM application. I updated the configuration to the following and set the autoFormsAuthentication per the Gu and StackOverflow to false. However, when my application is deployed to my web server (W2k3 Standard SP2, II6) the controllers marked with [Authorize] are always redirected to /Account/LogOn instead of the configured value.
[Code]....
I downloaded the Facebook C# SDK 4.1.1, and incorporated it on a small ASP.NET 3.5SP1 web project. When I run the application from VS Studio 2008, it allowed me to install my Facebook application. When I log onto facebook, I can see that my app installed, as I see it on my home page left nav.
When I click on the app, it displays the default.aspx page on my facebook app iframe. Looks like it worked, right? No it doesn't because when I debug the page on localhost, I see that the Authorize() on the CanvasAuthorizer app returns FALSE.
I created a web app in IIS 5.0 so that the default vs studio debugger doesn't interfere.
Here are they facebook settings I have set and other relevant information.
[code]....
I have a WCF service that runs in my web application that provides data to a Silverlight application and is defined as follows (with an appropriate .svc file)....
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class DispatchService [code]...
The idea is that the user logs into the website and is then authorised for all services. I do not want to have a login aspect to my Silverlight application to authenticate users.Therefore I dont want anyone to be able to call my service who is not authenticated.
Could I...Somehow determine this for each Operation Contract. I had a look inside the OperationContext object but couldnt find anthing that stood out as a way to determine who the user was.Somehow attribute the ServiceContract so that the method can only be used by authorised users?Put something in my web.config to stop unathorised users from being able to access the folder containing the services?
How can I authorize and authenticate users by roles? I have roles table and user's table, role Id is the primary key in the roles table and foreign key in the user's table.
View 4 RepliesI am not being able to use User Role at model level. I need this to grant control to each repository's method individualy.
This works fine at the objectController, at the controller level:
[Code]....
But at the objectRepository, model level, the following compiles but is ignored:
[Code]....
ASP.NET MVC doesn't allow this? Is there any way arround?
I want to authorize the asp.net account to access some folders in my project.
However, I get this error::
System.UnauthorizedAccessException: Access to the path 'D:ProgramingPartFromYamnWebExerciseWebExerciseAccordionImgs' is denied.
I am using win 7 so what is the name of the asp.net account that I should use?
How to Protect Web services from Un authenticated users.. right now Im Using Protected Access specifiers.. Is it Correct method To Protect Web services?
View 1 RepliesI'm trying to do the integration, i have designed my form already :
[Code]....
But i need to do the coding and i don't know how, I looks very complicated when i checked their sample codes in VB.Net the folder contains lots of files and codes.I have found someone that did the coding in c# and this is the link for the code :
http://www.keithfimreite.com/Codebehind.txt
and the link for the form http://www.keithfimreite.com/Form.txt
I'm getting "Windows NT user or group 'domainwebservername' not found" when I query the following. Why? This is how I got ny domain and webservername.
Response.Write(Environment.UserDomainName);
Response.Write(Request.ServerVariables["SERVER_NAME"]);
-- Create a SQL Server login for your application's domain account
sp_grantlogin 'domainwebservername$'
-- Grant the login access to the membership database
USE aspnetdb
GO
sp_grantdbaccess 'domainwebservername$', 'Web Server Name'
-- Add user to database role
USE aspnetdb
GO
sp_addrolemember 'aspnet_Membership_FullAccess', 'domainwebservername$'
I'm making a custom MembershipProvider and RoleProvider.
I have database tables with Roles and UsersInRoles and I use LINQ-to-SQL to create objects of the tables.
When invoking [Authorize] on an action method, will it work with my custom RoleProvider?
How does it know if the user is authenticated and if the user is in the appropriate role?
Need to develop a Web application that will be used to authenticate and authorize internal and external users to log and then re-route to web applications for the organization. The login application should be able to provider smooth integration with any future applications that needs a secured authentication. Should I be using WIF - Claims based Identity/ADFS or asp.net Role membership provider to develop this app.?
View 1 RepliesSummary: I need to authorize pages based upon the data present in the query string of a url, not just the page name.
Background:
Let's say I'm building a library inventory system. Users can be created and assigned to a single library in either an Admin or User role. There are hundreds of competing libraries in the same database, so it's important to ensure that users of one library cannot view inventory from another library.
Right now I'm using a pretty standard ASP.NET setup: Forms Authentication using the SqlMembershipProvider. Authorization using the SqlRoleProvider, configured via <authorization> sections in the web.config. Security trimming with the SiteMap provider to hide unauthorized pages.
To control the inventory information from leaking, I'm manually checking a user's associate library ID with every inventory query. It works, but it's tedious and prone to errors. There has to be a better way.
Question:
Now users have the ability to create arbitrary "collections" within a library. (e.g. Collection A has Books 1, 2, & 3 in it.) Admins want the ability to grant Admin / User access on individual collections, not just the entire library.
So, if a user goes to www.com/Book.aspx?BookId=1, the system needs to ensure that user has permissions for the collection that "Book 1" is in before showing the page. If they go to www.com/Reviews.aspx?ReviewId=23, I need to make sure the Review is for a book that is in a collection that they have permission to view.
1) How can I implement this in the most standard ASP.NET way possible?
Manual checking within a base page?
A custom HttpModule?
A custom Role Provider?
I'm not interested in how to store the admin/user permissions, but rather how/where to authorize based on those permissions.
(examples on how to implement any of those are appreciated)
2) To further complicate it, I'd still like security trimming to check if the user has Admin rights on any collection or library and hide the admin pages if he doesn't.
I have a dropdown with several items (hardcoded) and next to it I have a submit button - which invokes an Action in the controller. I can successfully identify the submit button in the controll using the name and value attributes of the submit button, but how can I send the selected value of the dropdown control to the controller?
[Code]....
Then inside the controller I can identify that the submitButton with value of "Start Task ..." has been clicked, but I do not know how to know which value in the dropdown was selected?
[Code]....
our implementation of an mvc site is being done in a very weird way but none the less it is still mvc.
I have an issue that on a certain page, when you click a button to download a document, it retrieves from a web service a byte array of a document. This is not an issue as i pass this byte array into the view data to allow me to access it in our controller.
This is the code in the controller.
[Code]....
Now this all works ok but as expected the result is rendered out into the current window. Is there anyway at all i can trigger a new window to render out the document?
I have a method...
[HttpPost]
public ActionResult Start(SomeViewModel someViewModel) { ... }
that based on some conditions returns things like return View("Invalid"), View("NotFound"), View("Run", anotherViewModel), etc. The problem is that no matter what view I present, the URL does not change to reflect the new controller/action. This poses a problem when my View wants to post to a different action. How can I fix this?
I'm creating a new ASP.NET MVC 2.0 web application that will have 5 main pages:
- Home
- Services
- Contact Us
- Terms & Conditions
- Priva
Shall i able to create two actionresult in a single page?
I m using two Html.BeginForm() in a single page? These two forms has different data as like
BeginFrom1() - dropdownlist
<% using (Html.BeginForm("ViewByStatus", "NewsLetterAdmin", FormMethod.Post))
{ %>
<div>
Filter:
<%=Html.DropDownList("statusName",new SelectList(new[]{"#firstname#","#lastname#","#emailid#","#date#"}))%>
<input type="submit" value="?" />
</div>
<%} %>
BeginForm2() - textbox , freetextbox
<% using (Html.BeginForm("ddown", "NewsLetterAdmin", FormMethod.Post))
{%>
<fieldset>
<legend>Fields</legend>
<div>
<%= Html.LabelFor(model => model.TemplateName) %>
</div>........
When i select a dropdownlist and submit , dropdown selected value comes to textbox and freetextbox. Its working well
Again i m adding contents to freetextbox
Again i select a dropdownlist and submit , dropdown selected value comes to textbox and freetextbox. The newly selected value only comes to textbox and freetextbox, but my old contents are not exists in freetextbox.
I need old contents and dropdown selected value comes to freetextbox.