Web Forms :: SSRS IIS7 Authentication Breaking Ajax?
Mar 11, 2011
Before I get started it's important to note that this issue only happens in IIS7 and IE7, which means it works fine in all our IIS6 environments and Chrome and Firefox hitting IIS7.
We have an ASP.NET 3.5 application that is doing a very basic window.open to open our report server.
Once launched the user is prompted for their username and password. If the user selects cancel and goes back to the parent window they can use all the Ajax functionality just fine; however, if the user logs into report server then all the Ajax functionality on the parent window ceases to work (example error below). We changed the javascript line above to popup a window to google and everything worked fine. We even tried changing it to '_self' to act like a redirect and we had the same results, everything failed. The issue appears to be related to something in IE7 and the authentication popup.
We've already set the application pool hosting the site in IIS7 to classic mode and this did not resolve our problem.
Error:
Error: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by call to Reponse.Write(), response filters, HttpModules, or server trace is enabled.
Details: Error Parsing near ' <!DOCTYPE html PUB'.
Has anyone successfully implemented forms authentication with SSRS? It seems like a lot of the documentation out there is just wrong or doesn't indicate which version of IIS / SSRS is being used.
I have an ASP.NET web application that is using forms authentication. Everything is configured and working correctly. However, i'm dealing with the issue of creating and maintaining users and role membership.
I know that I can roll my own solution but I'm wondering if there is an alternative solution?
Does iis7 provide screens for managing forms authentication users? Is there a reliable, free solution that someone would recommend?
It appears as though as soon as I intoduce a CPE function which is targeted to a floating panel/DIV, the DIV that has a height/width set to it dimension completely loses it value, or so it appears. In other words the DIV holds it's width and height parameters if the CPE function is not added to the page. see the screenshots and code.
Figure 1
without CPE function
Figure 2.
with CPE function
Here is the code to produce figure 1 result.
[Code]....
Here is the code to produce figure 2 result.
[Code]....
I have spent majority of my day trying to figure out why, I simply do not have and answer and was hoping if somebody has already seen this problem or know how to configure it for the floating DIV to hold it's width and height property when the CPE fucntion is added to the page.
I have an application that ran fine on a Win 2003 box using windows authentication. After installing the app on a 32-bit Windows Server 2008 box the users are now prompted for domain credentials every time they call the site. I went into IIS manager for IIS7 and disabled anonymous authentication and enabled windows authentication. What do I need to do here for the user to not be prompted for the credentials?
I'm having a tough time implementing mixed-mode authentication (windows & forms based) for my application using IIS 7. Doing it in IIS6 is easy, but the process doesn't translate to 7/7.5 - and my research has led to me to conflicting answers, none of which.
I have redirect page called WindowsLogin.aspx, and a forms-based one called Login.aspx. I'm having difficulty enabling Windows authentication for just WindowsLogin.aspx.
I have a website on IIS 7. This website has a HttpModule with an AuthorizeRequest event handler. This event does not fire for CSV files and I can access the file without logging in, I guess this is because IIS7 is not configured to require form autentication for CSV files.
I've got an ASP.NET web app that uses Crystal Reports XI Release 2 (Service Pack 4 + Fix Pack 4.1), and when I use Windows Authentication, the report still passes the application pool identity to the database instead of the user's identity. Every other portionof the program sends the user's identity (checked using SQL profiler). I know I've gotten this working on a client's windows 2008 server before, but I don't have access to that machine to make a comparison with the one I'm working on. I'm pretty sure it's an IIS configuration issue, but I can't seem to find the thing that's causing the Crystal reports to behave differently from the rest of the application.
I'm writting a software in C# and .NET to manage my store, which has a site where you can go and opt in to receive a sellers person visit. This site has an behind the scenes manager, but I want the software to do this instead, effectively removing the browser manager and the first step towards this goal is to allow the software access to a PHP script that generates tha XML file required.
The problem is, the login mechanics, written in C# and using web.config, doesn't allow the software to access the said script, which is inside a protected folder for the browser manager. I already tried using HttpWebRequest object, WebClient object with lots os combinations of post, credentials, streams and even a special user-agent to try and login, without success, I can only download the login page.
Here's the code I'm using to download data at the moment (That's my latest try, using the special header):
string agent = "AGENT"; //Not real name, it's just confidential WebClient client = new WebClient(); client.Headers["HTTP_USER_AGENT"] = agent; client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCompletedEvtHdl); client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressChangedEvtHdl); if (!Directory.Exists(toSavePath)) { Directory.CreateDirectory(toSavePath); } if (File.Exists(toSavePath + filename)) { File.Delete(toSavePath + filename); } client.DownloadFileAsync(new Uri(url), toSavePath + filename);
The login page is pretty simple, it only assings a click event to the login button to check if the user and password are the same in web.config. If true, got to redirect page, else, error.
So, what's the best method for this? Is there any way to configure IIS7 to skip the authentication on that special user agent or some other custom header? Or I'm going the wrong way?
I am trying to implement single sign on for users within our domain and if the are not then they get re-directed to the login screen to use forms authentication.
I have followed this tutorial below
however I get two issues firstly if I go to my forms authentication page no css or images now display and if i try to login i get an error.
If I go to the login page which should recognise me from the AD I get 401 - Unauthorized: Access is denied due to invalid credentials. You do not have permission to view this directory or page using the credentials that you supplied.
I've got a dynamic data application that I would like to use several Ajax Controls on (I.E. combo box with auto complete instead of dropdown for foreign key edit fields). I'm running into problems when I try to edit tables. I replaced the regular script manager with the one defined in the AJAX tool kit on the master page (Site.master). The combobox displays, and the table gets updated when you click update/insert, BUT, when the site tries to redirect back to the list view it barfs up a funny URL that the browser can't resolve. EX: www.example.com/TABLENAME/%2fTABLENAME%2fList.aspx when it should be www.example.com/TABLENAME/List.aspx. It works fine with the standard scriptmanager, but the ToolKit's manager doesn't. I'm using Visual Web Developer 2010 express, language is VB, DynamicData application uses LINQ to SQL.
I have a website deployed on IIS 7 . And want one of my pages authenticated by windows authentication. But While trying this I am getting error "This feature has been locked or Read Only".
'm using the AutoCompleteExtender from the AJAX control toolkit on my aspx page - I have it wired up to a WCF service that is returning a string array and everything works happily.
If I change my service definition to include a demand for the caller to be authenticated, like so:
<OperationContract(), PrincipalPermission(SecurityAction.Demand, Authenticated:=True)> _Public Function GetLookupValues(ByVal prefixText As String, ByVal count As Integer, ByVal contextKey As String) As String()
Then the autocomplete extender stops working, and I get an authentication error in the service. The service is set up to use ASPNetCompatibility mode, and I was hoping that the extender would pass the authentication credentials for my logged in user - does anyone know how to make this work?
I have a web application where users can authenticate using either SiteMinder or Windows domain accounts. This is actually configured as two separate virtual directories within IIS 6. Both applications need to use the same instance of SSRS. Is it possible to configure the SSRS web application so that if a user is authenticated by SiteMinder it impersonates a Windows account, but if they are already Windows-authenticated that account is used instead?
We have windows authentication set up on our staging server for our clients to help prevent google from indexing our staging URLs. We recently found out that one of our sites is seemingly ignoring our IIS settings (anonymous authentication is disabled, windows authentication is enabled). We ended up figuring out that removing the setting runAllManagedModulesForAllRequests="true" on the modules node (which is required for our URL rewriting on the site) fixes the issue and the windows login/password box appears as expected when we browse to the site. If we keep the setting there, the site allows any anonymous user to browse the website.How can we keep anonymous authentication off while keeping runAllManagedModulesForAllRequests set to true?
EDIT: We realized that we have other sites where this setting is on and windows authentication is working just fine. This only appears to happen in our ASPDotNetStorefront websites. I'm now wondering where I should check to see what is causing this issue - my guess is some sort of custom authentication module, but I don't have enough knowledge to figure out where to start debugging this.
The variable id is declared and it's value set eralier in the method.When the new window opens it displays the image properly, but the existing page suddenly loses all of it's styling. The links double in size and change font family. Does anyone know a way to retain styling on the calling page?
It's breaking at spot below in RowUpdating Event with the error msg "Index was out of range. Must be non-negative and less than the size of the collection"
txtAddress = CType(GridView1.Rows(e.RowIndex).FindControl("txtAddress"), TextBox).Text Here's my code: ASP <form id="form1" runat="server"> <asp:GridView id="GridView1" runat="server" CssClass="Grid" DataKeyNames="ID" AllowPaging="false" OnRowEditing = "GridView1_RowEditing" OnRowDeleting = "GridView1_RowDelete" OnRowUpdating = "GridView1_RowUpdating" AutoGenerateColumns="False" EnableViewState="false" ShowFooter="true"> <FooterStyle ForeColor="#4A3C8C" BackColor="#B5C7DE"></FooterStyle> <HeaderStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#4A3C8C"></HeaderStyle> <Columns> <asp:TemplateField HeaderText="ID"> <ItemTemplate> <%#Eval("ID")%> </ItemTemplate> <FooterTemplate> <asp:Button id="btnAdd" Runat="server" Text="Add New" CommandName="Insert"></asp:Button> </FooterTemplate> </asp:TemplateField> <asp:CommandField ShowEditButton="true" EditText="Edit" HeaderText="Edit" CausesValidation="false"/> <asp:CommandField ShowDeleteButton="true" EditText="Delete" HeaderText="Delete /> <asp:TemplateField HeaderText="mlsnum"> <EditItemTemplate> <asp:TextBox ID="txtMls" runat="server" Text='<%# Eval("mlsnum") %>'/> </EditItemTemplate> <ItemTemplate> <%#Eval("mlsnum")%> </ItemTemplate> <FooterTemplate> <asp:TextBox ID="txtMLS" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="reqMLS" runat="server" ControlToValidate="txtMLS" Display="Dynamic" ErrorMessage="You must enter an MLS #."> * </asp:RequiredFieldValidator> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Address"> <EditItemTemplate> <asp:TextBox ID="txtAddress" runat="server" Text='<%# Eval("Address") %>'/> </EditItemTemplate> <ItemTemplate> <%#Eval("Address")%> </ItemTemplate> <FooterTemplate> <asp:TextBox ID="txtAddress" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="reqAddress" runat="server" ControlToValidate="txtAddress" Display="Dynamic" ErrorMessage="Please enter an address."> * </asp:RequiredFieldValidator> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Subdivision"> <EditItemTemplate> <asp:TextBox ID="txtSubdivision" runat="server" Text='<%# Eval("subdivision") %>'/> </EditItemTemplate> <ItemTemplate> <%#Eval("Subdivision")%> </ItemTemplate> <FooterTemplate> <asp:TextBox ID="txtSubdivision" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="reqSubdivision" runat="server" ControlToValidate="txtSubdivision" Display="Dynamic" ErrorMessage="Please enter a Subdivision."> * </asp:RequiredFieldValidator> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Price"> <EditItemTemplate> <asp:TextBox ID="txtPrice" runat="server" Text='<%# Bind("Price") %>'/> </EditItemTemplate> <ItemTemplate> <%#Eval("Price")%> </ItemTemplate> <FooterTemplate> <asp:TextBox ID="txtPrice" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="reqPrice" runat="server" ControlToValidate="txtPrice" Display="Dynamic" ErrorMessage="Please enter an Price."> * </asp:RequiredFieldValidator> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Agent"> <ItemTemplate> <%#Eval("Agent")%> </ItemTemplate> <FooterTemplate> <asp:TextBox ID="txtAgent" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="reqAgent" runat="server" ControlToValidate="txtAgent" Display="Dynamic" ErrorMessage="Please enter an Agent."> * </asp:RequiredFieldValidator> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Comment"> <EditItemTemplate> <asp:TextBox ID="txtComment" runat="server" Text='<%# Eval("Comment") %>'/> </EditItemTemplate> <ItemTemplate> <%#Eval("Comment")%> </ItemTemplate> <FooterTemplate> <asp:TextBox ID="txtComment" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="reqComment" runat="server" ControlToValidate="txtComment" Display="Dynamic" ErrorMessage="Please enter a Comment."> * </asp:RequiredFieldValidator> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="PhotoAd"> <EditItemTemplate> <asp:checkbox ID="chkPhotoAd" runat="server" Checked=true/> </EditItemTemplate> <ItemTemplate> <asp:checkbox id="chkPhotoAd" runat="server" Enabled="true" /> </ItemTemplate> <FooterTemplate> <asp:CheckBox ID="chkAddPhotoAd" runat="server" Enabled="true" /> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="LineAd"> <EditItemTemplate> <asp:checkbox ID="chkLineAd" runat="server" Checked=true/> </EditItemTemplate> <ItemTemplate> <asp:checkbox id="chkLineAd" runat="server" Enabled="true" /> </ItemTemplate> <FooterTemplate> <asp:CheckBox ID="chkAddLineAd" runat="server" Enabled="true" /> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="# of Balloons"> <EditItemTemplate> <asp:TextBox ID="txtNumBalloons" runat="server" Text='<%# Eval("NumBalloons") %>'/> </EditItemTemplate> <ItemTemplate> <%# Eval("NumBalloons")%> </ItemTemplate> <FooterTemplate> <asp:TextBox ID="intNumBalloons" runat="server"></asp:TextBox> </FooterTemplate> </asp:TemplateField> </Columns> </asp:GridView> VB Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then Try BindData() Catch ex As Exception 'Error Handler lblError.Visible = True lblError.Text = Err.Description() 'lblError.Text = Err.Number End Try End If End Sub Sub BindData() Dim ds As New DataSet Dim objDS = New DataSet Dim cmd As SqlCommand Dim dataAdapter As New SqlDataAdapter strSqlConnection = ConfigurationManager.AppSettings("ConnectionString") sqlConn = New SqlConnection(strSqlConnection) strSqlStatement = "select * from tblAdSignup" cmd = New SqlCommand(strSqlStatement, sqlConn) dataAdapter.SelectCommand = cmd dataAdapter.Fill(ds) objDS.DataSetName = "ds" GridView1.DataSource = ds GridView1.DataBind() End Sub Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) GridView1.ShowFooter = False GridView1.EditIndex = e.NewEditIndex BindData() End Sub Protected Sub GridView1_RowCancel(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) GridView1.ShowFooter = True GridView1.EditIndex = -1 BindData() End Sub Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) 'Try 'BindData() 'Dim eRow As Int16 = e.RowIndex 'Dim id2 As Integer ID = GridView1.DataKeys(e.RowIndex).Value 'ID2 = GridView1.DataKeys(1).Value Dim txtAddress, txtAddress2 As String 'Dim test As Integer 'test = GridView1.Rows(0).Cells.Count 'Dim strAddress As String = DirectCast(GridView1.Rows(e.RowIndex).FindControl("txtAddress"), TextBox).Text 'Dim txtAddress As TextBox 'txtAddress = DirectCast(GridView1.Rows(e.RowIndex).FindControl("txtAddress"), TextBox) txtAddress = CType(GridView1.Rows(e.RowIndex).FindControl("txtAddress"), TextBox).Text 'txtAddress2 = GridView1.Rows(0).Cells(0).Text 'txtAddress2 = CType(GridView1.SelectedRow.FindControl("txtAddress"), TextBox).Text ' 'Catch ex As Exception ' 'Error Handler ' lblError.Visible = True ' lblError.Text = Err.Description() ' 'lblError.Text = Err.Number 'End Try End Sub
I have developed a custom visual web part for SharePoint 2010. The function of the web part is to interact with a BI server and pull back html for different reports and write the html to the page to display the reports (the reports are specified by the user in the web part properties menu). The problem is that the BI reports have <form> tags in them with a bunch of hidden input fields (which are used for drill down, paging, etc.). When I include the html that has these <form> tags, it breaks the web part tool pane buttons (OK, Cancel, Apply). If I pull out the <form> tags, the buttons work just fine... Does anyone know what is causing this? When I say that the web part tool pane "breaks", it is just not doing anything - no javascript errors, server errors, nothing... I just click the buttons and nothing happens.
I am in a situation where i need to reserach on a reporting tool, Other than SSRS for a good interface, cool features like having parameters with AJAX like intellesence. Please advice on the toold that are available currently that could be available and worked with an MVC .net application.
the features i am looking for in a report are:
Ajax intellesence when i search the Student name...
interactive Sorting
Graphs, Pie, maps
Either or parameter passing into the report, with SSR we have to provde all the parameters or it wouldnt let us run the report
I'm a junior programmer, i do not get the concept of MVC! My method of coding is seperating my application design into 3 layers:
Presentation Layer Business Layer Data Access Layer
I find it very practical to a junior developer or at least to me, so i do not really get the point of MVC since i believe MVC just tries to separate logic from UI. Right?
I decided to have this book to help me have a better idea on code design:
I get a website working perfectly in VS2008 but when I publish it on IIS7 ajax doesn't work at all.I guess it is a problem in my web.config but I don't know what. Here is the web.config file :