Create Subscription programmatically in Reporting Services - asp.net

I need to create a subscription for my SSRS reports in an asp.net page.
I can show the reports in a reportviewer using Reporting.WebForms.
SSRS is on the another computer in my network. For reportviewer, I use "admin" and "pass" for credentials which is the SSRS machine's admin username and password and it's ok. And admin has all the roles for SSRS reports.
But when I try to createSubscription via ReportingService2006 web service I can't make it.
I'm not a professional nor amateur. searched the web a lot.
tried this and the odetocode version of this:
1. technet - something similar 1
But couldn't make it happen. Really appriciate any help. thx in advance.

An alternative would be to setup some of your reports using "Data driven subscriptions". I find its pretty easy to manage this if your going to be doing alot of updates to your report subscriptions. It will allow you to interact with user subscriptions via a custom SQL table.
You can find a MSDN tutorial on setup for Data driven subscriptions here

There is a good article and source code here, it's the best info on this topic I've found so far.
http://www.codeproject.com/Articles/36009/Programmatically-Playing-With-SSRS-Subscriptions
There is also a class reference here
http://msdn.microsoft.com/en-us/library/ms165967%28v=sql.90%29

Related

SQL Server Reporting Services ReportViewer authentication

I'm working on a project involving the .NET ReportViewer, and I'm having issues connecting to the Report Server.
I'm a .NET newbie so bear with me. I can't put up the code but hopefully someone will be able to give me a little guidance here. I dragged the ReportViewer control from the toolbox onto a newly created page. Eleventy billion issues later, I got to the point where it looks like it's connecting to the appropriate server.
Now, I don't have any C# code in here. It's all in these fustrating tags.
So, I have a tag. Nested within, a tag. The ServerReport tag has 2 attributes, ReportPath and ReportServerUrl. I added a second, ReportServerCredentials, but do not know how to format it. Every example I've seen has been using C# code to create the object, but I'd like to do this without going down that route.
Is there a way to pass a user and password using the ReportServerCredentials="" attribute?
Default authentication provider for reporting services is windows authentication. So, if you want to connect to reporting services via reporviewer you should use a windows credential. on the other hand you have options to implement forms authentication or use custom authentication you have developed.
If you are using the WinForms version you may set the credential easily as follows:
ReportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = System.Net.CredentialCache.DefaultCredentials;
Unfortunately that property is read only for the ASP.NET version, so I suggest you to look at SSRS ReportServerCredentials thread. If it doesn't meet your requirements then you may need to implement IReportServerCredentials to send your username and password to the report server.
Hope this help.

Where can I store User Permissions for my website?

Hai,
i am trying to store the user permissions for my web site.But I am little bit confused with xml and Database. For each user in site have different permissions. Have u ever faced this issue? for Example , if my site is a shopping site , for a local user , the report menu need not to display. A sales man need not to display the purchase page. and so on ..
I think you understood my problem .I have done this user management using a xml file . For each user a new node will create according to the menu and keep in the xml file . Next time the user login ,checks the permissions and and show only the allowed menus.
My boss tell me to do the same thing using the Database. by using XmlDataSource it is quite simple to bind data to the treeview (for setting permission) and binding to the menustrip also.
He is pointing the security problem . i don't think like so.
Which is better ? DB or XML
http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx
My advice would be to use asp.net membership and roles (written by Microsoft). It is a very good security solution - login security, roles (permissions) and is stored in a SQLServer database (not sure if it can be stored elsewhere).
I use it on my site and you can use membership controls straight out of the box (login forms, change password, etc.) or you can roll your own.
The only tricky bit I found was setting up the membership tables, views and stored procs in my dB (you download a dB script), but really it was fairly straightforward to implement.
Here's a link to asp.net membership and roles
ASP .NET Membership and Roles (part of the Provider Model introduced on ASP .NET 2) is (IMHO) nice only when you need some basic stuff. The issue is that you need to use the whole system using SQL Server, but if you are planning to move to a different DB provider (MySQL, SQLite, etc..) then you'd have to implement your own provider (which is at best painful), and learn how the whole pieces fit each other. Granted, finding a custom implementation it's quite easy, but is not a copy & paste thing.
Another bad thing of the default provider model is that you will get a ton of SQL stored procedures, also called maintainance nightmares. The issue is that if your site scales, then these SP's will make your life a living hell (been there) and if you even dare to change hostings then you're in for a treat, so my advice would be make your own permissions hierarchy and use it the way you wish. Also, look for advices and some pre-existing solutions to the permissions problem which is quite common.
Website security can be split up into to distinct parts.
Authentication: Logging in
Authroization: Roles/Permissions.
The ASP.NET Forms Authentication Provider is a great way to implement authentication. I recently created a custom provider that communicates with our companies X500 directory (LDAP). It was very straight forward.
For Authorization, we implemented the entlib security application block. It allows you to keep Roles/Permissions in a separate location that can be accessed by your UI as well as your service layers (assuming your developing a scale-able solution). You may also want to look at the Windows Itentity Foundation which is slated to supersede entlib security application block, however it is only available for .NET 4.0.

Alternative to google analytics that runs on ASP.NET and doesn't use IIS logs?

I need a hit counter for my various pages, but I can't use google analytics (my client isn't ready for cloud computing) and I can't use anything that requires access to the IIS logs (the server administrator owns them and doesn't want to give them up)
What resources are there for user usage tracking for what is essentially a hosted ASP.NET account?
I'm running an ASP.NET application on IIS 6. I've turned on health monitoring, but so far that is just creating log data with no analytics.
I recently wrote up a list of (mostly) free GA alternatives.
http://regulargeek.com/2010/05/29/25-free-google-analytics-alternatives/
Many of these are cloud-based, but there are some that are completely hosted as well. I cannot recommend a particular solution, but the most popular self-hosted packages look like Grape Web Statistics (http://www.quate.net/grape), Open Web Analytics (http://www.openwebanalytics.com/) and Piwik (http://piwik.org/).
You could use something that logged raw data to a database and then analyse this information.
Various alternatives to Google Analytics reviewed here:
http://sixrevisions.com/usabilityaccessibility/10-promising-free-web-analytics-tools/
Andy
You could add an http module to the asp.net pipeline and write off values to a sql database if you're in a do-it-yourself mood.
How much detail do you need? If don't need all the extensive features of these listed, I'd just write something myself.
for example, at the bottom of your master page, put something like:
<webapp:MyPageCounter ID="counter" runat="server" />
and then define the MyPageCounter usercontrol to log the page requested, IP address, and headers. then you'd have all the information to generate some reports from.
If you DO need more features, well, I think some shared hosting allow PHP apps. ;)
You could run the PHP analytics tool Piwik under Phalanger, a tool which executes PHP on the CLR

ASP.net user management and GoDaddy shared hosting

I'm trying to use the asp.net (3.5) built in user management framework but I'm not 100% sure how to do this on godaddy. Google didn't help much, anyone have experience with this?
You can roll your own or find one. You cannot run the Asp.net configuration tool directly against your GoDaddy account. (If you notice, it's just another asp.net website runing in another dev web server via Visual Studio).
You can use the System.Web.Security.Membership and Roles static classes in the Membership Provider to hook into it. This is very easy to do. Membership.GetUsers(), etc.
You can also use the stored procs to manually add/remove users and roles.
-Nathan
Go to your hosting control center
in menu Content on top, go to IIS Management,
there will be list of web folder,
on top of the list you can see asp.net runtime versions and (modify) link in brackets, click on it. There you'll see if you are using asp.net 3.5.
I have also had this problem. About a year ago. So I am curious to know what the solution might be, if there is one! I was told by Go Daddy, back then, that they had ASP.net admin stuff "locked down" pretty tight. I went back and forth with their help people, who had to actually escalate it - because the general help team didnt understand what I was asking. What I ultimately did was I canceled my hosting service (they did give me a refund for unused time!) and I went over to a different host. Hope this helps and I will be listening carefully to responses as I am curious to see if they changed OR if someone has a workaround.
To get the tables that the membership provider uses, look in %WINDIR\Microsoft.NET\Framework\v2.0.50727. That is where the SQL statements used by the wizard are located. Also, check out:
http://www.asp.net/Learn/Security/tutorial-04-vb.aspx
for a more thorough explaination of how memberships tables are set up. You can do all the same work that the admin tool does, just not in a GUI format.

Viewing event log via a web interface

I'd like to be able to view the event log for a series of asp.net websites running on IIS. Can I do this externally, for example, through a web interface?
No, but there are two solutions I would recommend:
Adiscon EventLogger is a third-party product that will send your Windows EventLog to a SQL database. You can either send all events or create filters. Of course, once the events are in a SQL database, you can use any of the usual tools to create a web interface.
You can use ASP.NET's HealthMonitoring configuration section to configure .NET to send all ASP.NET-related events directly to a SQL database. This covers exceptions, heartbeats, and a host of other event types. The SqlWebEventProvider is a cinch to setup.
Do you want to know if you can home-roll something or are you looking for an app you can get off the shelf?
I'm not a Windows guy, but I think Microsoft's MOM/SCOM solution will probably let you view the event log over a web UI - probably really heavy and expensive if that's all you need though.
A quick google found http://www.codeproject.com/KB/XML/Event_Logger.aspx which shows that you can get in if you want to roll your own... also an MS tool on msdn
Sorry I can't be more help

Resources