.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Register
 
Win Surprise Gifts!!!
Congratulations!!!


Top 5 Contributors of the Month
Easy Web
Imran Ghani
Post New Web Links

Why does MVC2 reset my Context.User but MVC1 doesn't?

Posted By:      Posted Date: August 30, 2010    Points: 0   Category :ASP.Net
 
The question comes from a previous thread, but I would like to ask a more specific question from anyone in the know.Why does MVC2 reset my Context.User, discarding changes made in Application_AuthenticateRequest but MVC1 does not?Repro is pretty simple:Start an MVC1 and MVC2 new project. In both of them add the following code in global.asax: protected void Application_AuthenticateRequest(Object sender, EventArgs e) { if (Context.Request.IsAuthenticated) { FormsIdentity ident = (FormsIdentity)Context.User.Identity; Context.User = new System.Security.Principal.GenericPrincipal(ident, new[] { "FooAdmin" }); bool result = User.IsInRole("FooAdmin"); } } // break hereNow in both HomeController.cs files change the Index Action to: public ActionResult Index() { bool result = User.IsInRole("FooAdmin"); ViewData["Message"] = ""; // break here return View(); }Deploy to IIS, attach debugger on the "// break here" lines and then login to each site in turn.You should find that under MVC1 the result variable at both breakpoints is true, but in MVC2 it is false in the Index action.Anybody have any idea why? Is this a bug or by design? Any way around it?


View Complete Post


More Related Resource Links

Creating Sites/Lists/List Items under Current User Context in SharePoint By Using SPUserToken

  
Usually we do this by performing the action under RunWithElevatedPrivileges method and updating the listitem using SPListItem.SystemUpdate() method (see here). but this approach has its own flaws like (RunWithElevatedPrivileges will run under system account, we cannot use SystemUpdate for SPSite,SPWeb,SPList, since it runs under system we will "CreatedBy" by as SystemAccount).

The name 'User' does not exist in the current context.

  

Hey guys,

I've got a literal control to display the username of the user logged into our companies intranet system, originally I had a LoginName control but couldn't get strip to remove the domain from the username (as the format is domainname\username) so I'm trying it this way.

    protected void Page_Load(object sender, System.EventArgs e)
    {
        string[] Parts = User.Identity.Name.Split("\\");

        if (Parts.Length == 2)
        {
            loginName.Text = Parts[1];
        }
        else
        {
            loginName.Text = User.Identity.Name;
        }

    }


    protected void Page_Load(object sender, System.EventArgs e)
    {
        string[] Parts = User.Identity.Name.Split("\\");

SQL Server 2005 Performance Dashboard Reports user context

  
HI, We are planning on installing the Dashboard reports. But we'd like to know if the Dashboard is run under admin user or the login user who runs the Dashboard reports? Thanks! Kong

Which Version of Compact Edition doesn't need any additional installation on user machines

  
I have a winforms as well as wpf application (not asp.net).. I want to use a local database to store some extra information locally on user Which Version of Compact Edition doesn't need any additional installation on user machines ? i.e. user will only install .net framework and it can work.. Just like Access..  IMP : There might be a delay in posting replies due to time difference (GMT +2:00) and Friday's Holiday instead of Sunday.

Migrating MVC1 application to MVC2

  
I am having a Asp.net MVC1 based application which needs to be migrated to Asp.net MVC2. I opened this application in vs2010 and it automatically migrated it to MVC2. However one of its code line is creating problem during page exceution. I have following line in Application_start funtion of Global.asax ModelBinders.Binders.DefaultBinder = new Microsoft.Web.Mvc.DataAnnotations.DataAnnotationsModelBinder(); This is because Microsoft.Web.MVC.DataAnnotations dll is missing in MVC2. I tried to skip this error by commenting this code but that is also giving error. Can somebody please guide me about its replacement code. Thanks in advance Cheers TicArch

ASP.NET MVC2 Empty Web Application creates ASPNETDB database when I try to add user to my own databa

  
I created ASP.NET MVC2 Empty Web Application, I added my own database called 'Database1' and I added to this database Microsoft users, permissions etc. tables but when I create user in ASP.NET Configuration - it creates in catalog /App_Data database called 'ASPNETDB' and adds users to this database - I don't want that - I have my own database for that - what is going on ??In Web.config my ASP.NET MVC application I have only one connectionString - my own:<add name="Database1Entities" connectionString="metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" /> so what is going on ? How can I add users to my database 'Database1' ?

User Control that had been taken from external web control library (dll) doesn't see it's javascri

  
 Hello, I've created the .dll assembly with custom web controls and use it successfuly, but my last control needs a javascript. It is also in the same .dll with the control. The problem: My project doesn't see the javascrip in the externlal assembly. The question: How to tune the visibility of javascripts in the external assembly? Thank you. Serge.    

user control doesn't databind

  
I reference a user control in my ListView in this manner:<Prf:gradyr ID="GradYrE" runat="server" />This is the user control that's referenced:<asp:Panel ID="pnlGradYr" Visible="true" runat="server"> <div class="label"> <asp:Label ID="lblGradYr" Text="DNHS Grad Year:" runat="server" /> </div> <div class="ctrl"> <asp:TextBox ID="txtGradYr" Text='<%#Bind("GradYr")%>' TabIndex="5" runat="server" /> </div> <div class="req"> <asp:Label ID="lblGradYr_Req" Text="*" ForeColor="#FF0000" runat="server" /> </div> </asp:Panel> The problem is that the #Bind command doesn't update the database, but it does so when I paste the code directly into the aspx page (in other words, without the user control involved). Any suggestions?

How to make sure that user doesn't open same webpage in two different browsers or browser tabs?

  

Hi,

We are using asp.net StateServer for asp.net session management. In our project we need to make sure that if a user is already logged in and if he is trying to acess the website from a different browser tab, we need to inform him that he is already logged in in another tab and use it instead of opening a new session. Consider the following scenarios:

1. User is logged on in tab1 and his session is still on, then user tries to logon from another tab, the browser sends the asp.net session_id cookie, In the page init i am checking if the Asp.net session Id cookie is present, if it is there i am checking if the it is a new Session (i.e. if the existing session timed out), if it is a new session then proceed with the user action else it means that the session in tab1 is still active so i am redirecting user to error page with appropriate message.

Now the problem with this approach is that, suppose session in tab1 is expired and user opens tab2 and performs some actions, now he goes back to tab1 and perform any action, i directly need to take him to log out page.

Please let me know how this can be achieved.


WPF Textbox loses original values, even if the user doesn't udpate

  

Hi,

I am having a very strange issue. I have a datagrid which is binding to an observable collection of type Person The selected item is bind to an Object Person. I have 2 textboxes firstname and lastname. When ever user selects an item from grid, the textbox values gets populated. user can edit the values and click submit button, values gets updated.

Source to Target works correctly - i.e. able to display from viewModel When I update the values gets updated.

Lets say user selected an item with firstname john, lastname smith The problem is user edits the firstname to johnny and he doesn't click submit button instead he selects a different item from datagrid, so when I go back to the original selected item. In the grid the selected item is shown as John smith, but in the textbox the value is shown as Johnny smith.

How to solve this problem? Any help would be greatly appreciated.


WPF Textbox loses original values, even if the user doesn't udpate

  

Hi,

I am having a very strange issue. I have a datagrid which is binding to an observable collection of type Person The selected item is bind to an Object Person. I have 2 textboxes firstname and lastname. When ever user selects an item from grid, the textbox values gets populated. user can edit the values and click submit button, values gets updated.

Source to Target works correctly - i.e. able to display from viewModel When I update the values gets updated.

Lets say user selected an item with firstname john, lastname smith The problem is user edits the firstname to johnny and he doesn't click submit button instead he selects a different item from datagrid, so when I go back to the original selected item. In the grid the selected item is shown as John smith, but in the textbox the value is shown as Johnny smith.

How to solve this problem? Any help would be greatly appreciated.


Logout doesn't work on all pages, and also User.IsInRole, UrlRewrting ?

  

Hello,

I can't logout from my main page and also from the other pages when I'm using UrlRewriting rule without file extension. If I open the page with .aspx at the end, logout process working just fine. For example:

www.mydomain.com => logout impossible

www.mydomain.com/contakt => logout impossible

www.mydomain.com/contakt.aspx => logout working fine

 

Also when I log into system, the User.IsInRole method doesn't work for all pages used in application. It's working properly for the pages placed in main folder, but it's not working for the page placed in /folder/subfolder/somepage.aspx . Url showing in browser for this page is www.mydomain.com/somepage . How can I check If user is in role for that page ? It's always return false.

Does anybody got this problem ? How to solve it ? Please share any knowledge..


SPD workflow doesn't send email to user in list when automatically started

  
Hi all,

My first post here and I hope someone out there could kindly help. I recently found out a strange issue with my SPD workflow. Basically, it couldn't send out email if (1) the recipient resides in the list and (2) the workflow is automatically started.

For example, I have a list with a "user" field. A workflow first "Send an email" to this user, and then "Collect data from a user" from this user. If the workflow is set to start automatically, then this user gets no email. Tasks list does contain a task, but the "Assigned To" field of the task is empty. This is the case no matter if the user field is of type "Single line of text" or "Person or Group".

Everything's fine if I manually start the workflow. And everything's fine if the user is directly spelled out (jay@company.com) in the "Send an email" and "Collect data from a user" actions instead of retrieved from the list. Either case the user would get two emails as expected, and the "Assigned To" field would display the user name properly.

I looked into the log but didn't find anything special. As you can imagine, this is breaking a lot of our workflows and making SPD workflow look very bad. It's just not

WPF Textbox loses original values, even if the user doesn't udpate

  

Hi,

I am having a very strange issue. I have a datagrid which is binding to an observable collection of type Person The selected item is bind to an Object Person. I have 2 textboxes firstname and lastname. When ever user selects an item from grid, the textbox values gets populated. user can edit the values and click submit button, values gets updated.

Source to Target works correctly - i.e. able to display from viewModel When I update the values gets updated.

Lets say user selected an item with firstname john, lastname smith The problem is user edits the firstname to johnny and he doesn't click submit button instead he selects a different item from datagrid, so when I go back to the original selected item. In the grid the selected item is shown as John smith, but in the textbox the value is shown as Johnny smith.

How to solve this problem? Any help would be greatly appreciated.

 


NULL for user who don't have appointment - UNION error ... LEFT JOIN doesn't work

  

Hi,

It's so silly what i'm trying to do.. I just need to catch the entire list of user and null for users who don't have appointment ....

I tried union but I've got an error, please help

 

Msg 205, Level 16, State 1, Line 2
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.




declare @SQL Varchar(4000)

declare @CRM_FilteredAppointment nvarchar(2000)
declare @CRM_FilteredSystemUser nvarchar(2000)



set @CRM_FilteredSystemUser = 'SELECT systemuserid, eu_reporthubname, fullname, businessunitidname 
 FROM FilteredSystemUser 
 WHERE businessunitidname = ''Spain''
'
--exec (@CRM_FilteredSystemUser)

set @CRM_FilteredAppointment = 'SELECT activityid, ownerid, regardingobjectid, subject, scheduledend 
 FROM FilteredAppointment 
'

set @SQL = ' 
 SELECT SU.systemuserid, SU.fullname, count(partyid)
 FROM (' + @CRM_FilteredSystemUser + ') AS SU
   LEFT JOIN
    (' + @CRM_FilteredAppointment + ') as Apt ON 
    SU.systemuserid = Apt.ownerid 
   INNER JOIN
    FilteredActivityParty AS AP ON Apt.activityid = AP.activityid 
   AND (AP.participationtypemask = 8 OR AP.participationtypemask = 5) 
 WHERE Partyidname is not null 
group by SU.systemuserid, SU.fullname
UNION ALL 
SELECT

Create a page that doesn't require the user to be logged in

  

Hey all,

 

I have two pages in my 'Root Site' - login and registration. At the moment i can't get to them if i'm not logged in as a valid user which is a pain! Obviously for these pages in the long run I want non-authenticated users to be able to access them and use them to authenticate for site access. So i have two questions:

- How can i set permissions on these pages to allow for public access?

- Any tips you might have about using a form-based login overriding the default SP2010 popup box would be appreciated

Many thanks,

HC


Get context to a control in web part from visual user control

  

I have a Visual Web Part (lets call it "ABCWebPart").

I'm attempting to create a connection to another web part which means I have to create the ConnectionProvider in the WebPart class (ABCWebPart.cs).

The value I want to set in my AJAX provider interface is a control I created in my visual user control (ABCWebPartUserControl.ascx).

How do I get the context of the TextBox control from my Visual user Control in order to assign it's value into the AJAX provider interface?

 

Thanks in advance,

- Eric


Categories: 
ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend