Showing posts with label custom. Show all posts
Showing posts with label custom. Show all posts

Sunday, March 25, 2012

Authoring Custom Report Controls

Hi,

I'm using VS2005 Beta 2 (April) and SQL Server 2005 (CTP April 2005) and I'm very interested in creating my own custom control for SQL Server 2005 ReportingServices.

I understand that in order to do this I have to inherit from some classes (CustomReportItem?) and other interfaces which are declared in the following namespaces:

using Microsoft.ReportingServices.Interfaces;
using Microsoft.ReportingServices.ReportRendering;
using Microsoft.ReportingServices.ReportProcessing;

Does anybody have a simple example I can use similar to the SimpleControl Sample for Windows Forms control? Or any other pointers?

Many thanks,

The documentation and sample for Custom Report Item is planned to be available around the time SQL 2005 releases. They are not available at this time.

|||Hi Christopher,
i've got exact the same problem and searching for answers too. did u have n e prosperties in the meantime ? i've got an MS-live-meeting today to solve this problem, hopefully. if u need help ...|||Does anybody know anything more about this yet?

Many thanks!|||

Hi,
What's the status on this topic?
- Does it work in the current release at all or is the sample just not produced?
- If you have anything like an embryo to a sample I'd be grateful for input...we're starting a development project now so, an answer would much appreciated

Thanks in advance

Michael G

|||

Does anybody know anything more about this yet?

Best Regards, and thanks for your answers...

Authoring Custom Report Controls

Hi,

I'm using VS2005 Beta 2 (April) and SQL Server 2005 (CTP April 2005) and I'm very interested in creating my own custom control for SQL Server 2005 ReportingServices.

I understand that in order to do this I have to inherit from some classes (CustomReportItem?) and other interfaces which are declared in the following namespaces:

using Microsoft.ReportingServices.Interfaces;
using Microsoft.ReportingServices.ReportRendering;
using Microsoft.ReportingServices.ReportProcessing;

Does anybody have a simple example I can use similar to the SimpleControl Sample for Windows Forms control? Or any other pointers?

Many thanks,

The documentation and sample for Custom Report Item is planned to be available around the time SQL 2005 releases. They are not available at this time.

|||Hi Christopher,
i've got exact the same problem and searching for answers too. did u have n e prosperties in the meantime ? i've got an MS-live-meeting today to solve this problem, hopefully. if u need help ...
|||Does anybody know anything more about this yet?

Many thanks!|||

Hi,
What's the status on this topic?
- Does it work in the current release at all or is the sample just not produced?
- If you have anything like an embryo to a sample I'd be grateful for input...we're starting a development project now so, an answer would much appreciated

Thanks in advance

Michael G

|||Does anybody know anything more about this yet?

Best Regards, and thanks for your answers...

Authoring Custom Report Controls

Hi,

I'm using VS2005 Beta 2 (April) and SQL Server 2005 (CTP April 2005) and I'm very interested in creating my own custom control for SQL Server 2005 ReportingServices.

I understand that in order to do this I have to inherit from some classes (CustomReportItem?) and other interfaces which are declared in the following namespaces:

using Microsoft.ReportingServices.Interfaces;
using Microsoft.ReportingServices.ReportRendering;
using Microsoft.ReportingServices.ReportProcessing;

Does anybody have a simple example I can use similar to the SimpleControl Sample for Windows Forms control? Or any other pointers?

Many thanks,

The documentation and sample for Custom Report Item is planned to be available around the time SQL 2005 releases. They are not available at this time.

|||Hi Christopher,
i've got exact the same problem and searching for answers too. did u have n e prosperties in the meantime ? i've got an MS-live-meeting today to solve this problem, hopefully. if u need help ...|||Does anybody know anything more about this yet?

Many thanks!|||

Hi,
What's the status on this topic?
- Does it work in the current release at all or is the sample just not produced?
- If you have anything like an embryo to a sample I'd be grateful for input...we're starting a development project now so, an answer would much appreciated

Thanks in advance

Michael G

|||

Does anybody know anything more about this yet?

Best Regards, and thanks for your answers...

sql

Authoring Custom Report Controls

Hi,

I'm using VS2005 Beta 2 (April) and SQL Server 2005 (CTP April 2005) and I'm very interested in creating my own custom control for SQL Server 2005 ReportingServices.

I understand that in order to do this I have to inherit from some classes (CustomReportItem?) and other interfaces which are declared in the following namespaces:

using Microsoft.ReportingServices.Interfaces;
using Microsoft.ReportingServices.ReportRendering;
using Microsoft.ReportingServices.ReportProcessing;

Does anybody have a simple example I can use similar to the SimpleControl Sample for Windows Forms control? Or any other pointers?

Many thanks,

The documentation and sample for Custom Report Item is planned to be available around the time SQL 2005 releases. They are not available at this time.

|||Hi Christopher,
i've got exact the same problem and searching for answers too. did u have n e prosperties in the meantime ? i've got an MS-live-meeting today to solve this problem, hopefully. if u need help ...
|||Does anybody know anything more about this yet?

Many thanks!|||

Hi,
What's the status on this topic?
- Does it work in the current release at all or is the sample just not produced?
- If you have anything like an embryo to a sample I'd be grateful for input...we're starting a development project now so, an answer would much appreciated

Thanks in advance

Michael G

|||Does anybody know anything more about this yet?

Best Regards, and thanks for your answers...

Authentication, windows or custom

I have read most of the threads regarding form authentication as well as the suggested articles. Unfortunately I am not clear if I need to do custom security or stay with windows authentication

I would like to access a specific report using a URL so that all the features and funcionalty of the report is available to the user. There are to many users and reports to assign and maintain individual users and/or groups to a specific report.

Our users would access the report from either a windows or web application having already passed security. They would have a button to press to obtain the report. We would prefer to pass a specific userid to report services at this point that is authorized to view the report.

Can this be done without switching to custom security? To use form authentication must you switch to custom security? Would impersonation work?Hi,

If you go with Windows Authentication, then you can retrieve the Windows UserId from the Thread class - Thread.CurrentPrincipal.Identity.Name

Regards,
Vikram

Tuesday, March 20, 2012

Authentication errors after backing out changes for forms authentication

We attempted to run the custom authentication sample from the RS
samples. We had issues and attempted to "back out" our changes - being
stupid, we didn't back up our config files. "How hard could it be?"
Well, 8 hours later, we're out of answers as to why we can't run RS
anymore. Yes, learn from our mistake.
We're hoping someone can help us with the following.
When going to http://localhost/Reports, I get the following:
System.Web.Services.Protocols.SoapException: Server was unable to
process request. --> System.NullReferenceException: Object reference
not set to an instance of an object. at
Microsoft.ReportingServices.Diagnostics.ExtensionClassFactory.GetExtensionConfigurationInfo(String
extensionType, String extensionName) at
Microsoft.ReportingServices.Diagnostics.AuthenticationExtensionFactory.get_AuthenticationExtension()
at Microsoft.ReportingServices.WebServer.ReportingService2005..ctor()
-- End of inner exception stack trace --
When going to http://localhost/ReportServer, I get a 404.
The log file ReportServerWebApp__01_17_2006_15_33_40 contains the
following stack dump:
'
aspnet_wp!ui!1!1/17/2006-15:34:06:: e ERROR:
System.Web.Services.Protocols.SoapException: Server was unable to
process request. --> System.NullReferenceException: Object reference
not set to an instance of an object.
at
Microsoft.ReportingServices.Diagnostics.ExtensionClassFactory.GetExtensionConfigurationInfo(String
extensionType, String extensionName)
at
Microsoft.ReportingServices.Diagnostics.AuthenticationExtensionFactory.get_AuthenticationExtension()
at
Microsoft.ReportingServices.WebServer.ReportingService2005..ctor()
-- End of inner exception stack trace --
aspnet_wp!ui!1!1/17/2006-15:34:06:: e ERROR: HTTP status code --> 500
--Details--
System.Web.Services.Protocols.SoapException:
System.Web.Services.Protocols.SoapException: Server was unable to
process request. --> System.NullReferenceException: Object reference
not set to an instance of an object.
at
Microsoft.ReportingServices.Diagnostics.ExtensionClassFactory.GetExtensionConfigurationInfo(String
extensionType, String extensionName)
at
Microsoft.ReportingServices.Diagnostics.AuthenticationExtensionFactory.get_AuthenticationExtension()
at
Microsoft.ReportingServices.WebServer.ReportingService2005..ctor()
-- End of inner exception stack trace --
at
Microsoft.SqlServer.ReportingServices2005.RSConnection.GetSecureMethods()
at
Microsoft.ReportingServices.UI.Global.RSWebServiceWrapper.GetSecureMethods()
at
Microsoft.SqlServer.ReportingServices2005.RSConnection.IsSecureMethod(String
methodname)
at
Microsoft.SqlServer.ReportingServices2005.RSConnection.ValidateConnection()
at
Microsoft.ReportingServices.UI.ReportingPage.EnsureHttpsLevel(HttpsLevel
level)
at
Microsoft.ReportingServices.UI.ReportingPage.ReportingPage_Init(Object
sender, EventArgs args)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Web.UI.Control.OnInit(EventArgs e)
at System.Web.UI.Page.OnInit(EventArgs e)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
aspnet_wp!ui!1!1/17/2006-15:34:06:: e ERROR: Exception in
ShowErrorPage: System.Threading.ThreadAbortException: Thread was being
aborted.
at System.Threading.Thread.AbortInternal()
at System.Threading.Thread.Abort(Object stateInfo)
at System.Web.HttpResponse.End()
at System.Web.HttpServerUtility.Transfer(String path, Boolean
preserveForm)
at Microsoft.ReportingServices.UI.ReportingPage.ShowErrorPage(String
errMsg) at at System.Threading.Thread.AbortInternal()
at System.Threading.Thread.Abort(Object stateInfo)
at System.Web.HttpResponse.End()
at System.Web.HttpServerUtility.Transfer(String path, Boolean
preserveForm)
at Microsoft.ReportingServices.UI.ReportingPage.ShowErrorPage(String
errMsg)
I confirmed that the rsreportserver.config section that deals with
security/authentication looks as follows - this matches another server
whose RS is working:
<Security>
<Extension Name="Windows"
Type="Microsoft.ReportingServices.Authorization.WindowsAuthorization,Microsoft.ReportingServices.Authorization"/>
</Security>
<Authentication>
<Extension Name="Windows"
Type="Microsoft.ReportingServices.Authentication.WindowsAuthentication,Microsoft.ReportingServices.Authorization"/>
</Authentication>
And the web.configs in both ReportManager and ReportServer folders
reference the correct authentication extension:
Report Manager web.config:
<authentication mode="Windows" />
<identity impersonate="true" />
Report Server web.config:
<authentication mode="Windows" />
<identity impersonate="true" />
At this point, I'm considering spinning up a second instance of RS to
see if there's something more basic broken, but I thought I would ask
for any help/pointers on this.
Thank you!
MichaelSJust a followup, in case a search finds this topic. We never did solve
the problem. We ended up completely removing SQL/RS and reinstalling.
Our suspicion is that something was inadvertently deleted. Since this
was a dev box, it's assumed that a trashing every so often is
acceptable.
MS|||In our case, the pieces that disappeared were three files from
C:\Program Files\Microsoft SQL Server\MSSQL.4\Reporting
Services\ReportServer. Specifically:
global.asax, ModelGenerationRules.smgl, and ReportExecution2005.asmx.
Replacing those files (from a working installation) solved the problem.

Authentication errors after backing out changes for forms authentication

We attempted to run the custom authentication sample from the RS samples. We had issues and attempted to "back out" our changes - being stupid, we didn't back up our config files. "How hard could it be?" Well, 8 hours later, we're out of answers as to why we can't run RS anymore. Yes, learn from our mistake.

We're hoping someone can help us with the following.


When going to http://localhost/Reports, I get the following:

System.Web.Services.Protocols.SoapException: Server was unable to process request. > System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.ReportingServices.Diagnostics.ExtensionClassFactory.GetExtensionConfigurationInfo(String extensionType, String extensionName) at Microsoft.ReportingServices.Diagnostics.AuthenticationExtensionFactory.get_AuthenticationExtension() at Microsoft.ReportingServices.WebServer.ReportingService2005..ctor() End of inner exception stack trace


When going to http://localhost/ReportServer, I get a 404.


The log file ReportServerWebApp__01_17_2006_15_33_40 contains the following stack dump:
'
aspnet_wp!ui!1!1/17/2006-15:34:06:: e ERROR: System.Web.Services.Protocols.SoapException: Server was unable to process request. > System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.ReportingServices.Diagnostics.ExtensionClassFactory.GetExtensionConfigurationInfo(String extensionType, String extensionName)
at Microsoft.ReportingServices.Diagnostics.AuthenticationExtensionFactory.get_AuthenticationExtension()
at Microsoft.ReportingServices.WebServer.ReportingService2005..ctor()
End of inner exception stack trace
aspnet_wp!ui!1!1/17/2006-15:34:06:: e ERROR: HTTP status code --> 500
-Details--
System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Server was unable to process request. > System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.ReportingServices.Diagnostics.ExtensionClassFactory.GetExtensionConfigurationInfo(String extensionType, String extensionName)
at Microsoft.ReportingServices.Diagnostics.AuthenticationExtensionFactory.get_AuthenticationExtension()
at Microsoft.ReportingServices.WebServer.ReportingService2005..ctor()
End of inner exception stack trace

at Microsoft.SqlServer.ReportingServices2005.RSConnection.GetSecureMethods()

at Microsoft.ReportingServices.UI.Global.RSWebServiceWrapper.GetSecureMethods()

at Microsoft.SqlServer.ReportingServices2005.RSConnection.IsSecureMethod(String methodname)

at Microsoft.SqlServer.ReportingServices2005.RSConnection.ValidateConnection()

at Microsoft.ReportingServices.UI.ReportingPage.EnsureHttpsLevel(HttpsLevel level)

at Microsoft.ReportingServices.UI.ReportingPage.ReportingPage_Init(Object sender, EventArgs args)

at System.EventHandler.Invoke(Object sender, EventArgs e)

at System.Web.UI.Control.OnInit(EventArgs e)

at System.Web.UI.Page.OnInit(EventArgs e)

at System.Web.UI.Control.InitRecursive(Control namingContainer)

at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
aspnet_wp!ui!1!1/17/2006-15:34:06:: e ERROR: Exception in ShowErrorPage: System.Threading.ThreadAbortException: Thread was being aborted.
at System.Threading.Thread.AbortInternal()
at System.Threading.Thread.Abort(Object stateInfo)
at System.Web.HttpResponse.End()
at System.Web.HttpServerUtility.Transfer(String path, Boolean preserveForm)
at Microsoft.ReportingServices.UI.ReportingPage.ShowErrorPage(String errMsg) at at System.Threading.Thread.AbortInternal()
at System.Threading.Thread.Abort(Object stateInfo)
at System.Web.HttpResponse.End()
at System.Web.HttpServerUtility.Transfer(String path, Boolean preserveForm)
at Microsoft.ReportingServices.UI.ReportingPage.ShowErrorPage(String errMsg)

I confirmed that the rsreportserver.config section that deals with security/authentication looks as follows - this matches another server whose RS is working:

<Security>
<Extension Name="Windows" Type="Microsoft.ReportingServices.Authorization.WindowsAuthorization,Microsoft.ReportingServices.Authorization"/>
</Security>
<Authentication>
<Extension Name="Windows" Type="Microsoft.ReportingServices.Authentication.WindowsAuthentication,Microsoft.ReportingServices.Authorization"/>
</Authentication>


And the web.configs in both ReportManager and ReportServer folders reference the correct authentication extension:

Report Manager web.config:
<authentication mode="Windows" />
<identity impersonate="true" />

Report Server web.config:
<authentication mode="Windows" />
<identity impersonate="true" />


At this point, I'm considering spinning up a second instance of RS to see if there's something more basic broken, but I thought I would ask for any help/pointers on this.

Thank you!

Michael Shorten

Just as a followup, in case someone else searches for this problem and finds my post - we never solved it. We recovered the config files to what they were supposed to be, but things never still worked. We now believe that we somehow deleted a file(s) - given the error message, that seems plausible. We ended up having to completely removed SQL Server and RS from our system, physically deleting the MSSQL and MSSQLRS directories and reinstalling. This time, we backed everything up before working on it and of course, it worked.

Michael S

sql

Monday, March 19, 2012

Authenticating against LDAP/Active Directory with SQL Server 2000 SP2

Hello everyone,

We have a custom application that connects remotely to a SQL Server 2000 (SP2) database. We would like our application to validate a user's login against Active Directory.

So far I have been able to get a lookup working, but I can not find documentation on how to validate the password from within SQL Server. I found a lot of notes on using ASP.NET objects, or VB, C#, etc, but for this solution it must be done entirely in SQL. It would also be nice if this were SQL Server 2005; we could just embed the C# code and call it as a SQL stored proc, but unfortunately we are left with the constraint that we cannot upgrade this DB at this time.

Linked server 'ADSI' is set up with the sp_addlinkedserver command:

EXEC master.dbo.sp_addlinkedserver @.server = N'ADSI', @.srvproduct=N'Active
Directory Services 2.5', @.provider=N'ADsDSOObject', @.datasrc=N'adsdatasource'

Two table functions in our test DB (trying to test both ways I've found in docs):

ALTER FUNCTION [dbo].[GetAuthenticatedUserViaLDAP]
(
-- Add the parameters for the function here
@.userId nvarchar(50),
@.password nvarchar(50)
)
RETURNS TABLE
AS
RETURN
(
-- Add the SELECT statement with parameter references here
SELECT [SAMAccountName], CN [Name], SN [Last Name], ST State
FROM OPENQUERY( ADSI,
'<LDAP://DC=company,DC=com>;((objectClass=user));SAMAccountName,cn,sn,st')
WHERE [SAMAccountName] = @.userId
)

ALTER FUNCTION [dbo].[GetAuthenticatedUser]
(
-- Add the parameters for the function here
@.userId nvarchar(50),
@.password nvarchar(50)
)
RETURNS TABLE
AS
RETURN
(
-- Add the SELECT statement with parameter references here
SELECT [SAMAccountName], [Name], SN [Last Name], ST State
FROM OPENQUERY( ADSI,
'SELECT SAMAccountName, Name, SN, ST
FROM ''LDAP://bdsserver1/ CN=users,DC=company,DC=com''
WHERE objectCategory = ''Person''
AND objectClass = ''user'' ')
WHERE [SAMAccountName] = @.userId
)

So calling either of these table functions from our custom application gives the same result:

select * from dbo.GetAuthenticatedUser('astonaker','abc')
OR
select * from dbo.GetAuthenticatedUserViaLDAP('astonaker','abc')

ResultSet:

'astonaker', 'Anthony', 'Stonaker' 'NULL'

So I can at least tell if a given user exists or not, but I have no visibility into whether the password they entered into our application is valid in LDAP.

I don't want to pass unencrypted passwords through the network, but then I don't know how to encrypt/compare these passwords without using the .NET Connection or DirectoryEntry, etc objects.

Any thoughts/suggestions are greatly appreciated!

Why do you need to validate credentials on a SQL server?

If a password is entered on a client, then could you validate it there or are you going to do something as that user on a SQL server?

In that case could you impersonate a user on a client and connect to the server?

|||The app that needs this validation cannot validate against LDAP directly; it is a limited custom-built scripting language. It can easily execute queries against its remote SQL Server DB, and we are trying to investigate a solution that will allow us to run a query to validate against LDAP from there. Simply knowing whether or not the user ID/password combination entered into the app matches the Active Directory credentials is sufficient.

Edit: From browsing more formus/docs today, what do you think of using an extended stored procedure? Possibly compile the .NET connection code in a dll and plug it into sql server? From digging through more postings it looks like it might be the most direct route I'll be able to get.

Thanks for the post!
|||That extended procedure did the trick!

We ended up using IADsOpenDSObject:: OpenDSObject for this purpose. We were constrained to using C/C++ and none of the .NET classes, but there was very nice documentation in several places that served as great guides:

http://www.codeproject.com/database/extended_sp.asp
http://msdn2.microsoft.com/en-us/library/aa706065.aspx

I did see where MS noted that "This method should not be used just to validate user credentials," but the link they provided to SSPI authentication was not very helpful.

ALSO, for anyone else jumping through the same hoops, MS noted that the function srv_describe (and its companion srv_ functions) is being removed in future versions of SQL Server:

http://msdn2.microsoft.com/en-us/library/ms164631.aspx

They state to "Use CLR Integration instead," so if anyone has any links to a good reference I'd love to check them out!

Authenticating against LDAP/Active Directory with SQL Server 2000 SP2

Hello everyone,

We have a custom application that connects remotely to a SQL Server 2000 (SP2) database. We would like our application to validate a user's login against Active Directory.

So far I have been able to get a lookup working, but I can not find documentation on how to validate the password from within SQL Server. I found a lot of notes on using ASP.NET objects, or VB, C#, etc, but for this solution it must be done entirely in SQL. It would also be nice if this were SQL Server 2005; we could just embed the C# code and call it as a SQL stored proc, but unfortunately we are left with the constraint that we cannot upgrade this DB at this time.

Linked server 'ADSI' is set up with the sp_addlinkedserver command:

EXEC master.dbo.sp_addlinkedserver @.server = N'ADSI', @.srvproduct=N'Active
Directory Services 2.5', @.provider=N'ADsDSOObject', @.datasrc=N'adsdatasource'

Two table functions in our test DB (trying to test both ways I've found in docs):

ALTER FUNCTION [dbo].[GetAuthenticatedUserViaLDAP]
(
-- Add the parameters for the function here
@.userId nvarchar(50),
@.password nvarchar(50)
)
RETURNS TABLE
AS
RETURN
(
-- Add the SELECT statement with parameter references here
SELECT [SAMAccountName], CN [Name], SN [Last Name], ST State
FROM OPENQUERY( ADSI,
'<LDAP://DC=company,DC=com>;((objectClass=user));SAMAccountName,cn,sn,st')
WHERE [SAMAccountName] = @.userId
)

ALTER FUNCTION [dbo].[GetAuthenticatedUser]
(
-- Add the parameters for the function here
@.userId nvarchar(50),
@.password nvarchar(50)
)
RETURNS TABLE
AS
RETURN
(
-- Add the SELECT statement with parameter references here
SELECT [SAMAccountName], [Name], SN [Last Name], ST State
FROM OPENQUERY( ADSI,
'SELECT SAMAccountName, Name, SN, ST
FROM ''LDAP://bdsserver1/ CN=users,DC=company,DC=com''
WHERE objectCategory = ''Person''
AND objectClass = ''user'' ')
WHERE [SAMAccountName] = @.userId
)

So calling either of these table functions from our custom application gives the same result:

select * from dbo.GetAuthenticatedUser('astonaker','abc')
OR
select * from dbo.GetAuthenticatedUserViaLDAP('astonaker','abc')

ResultSet:

'astonaker', 'Anthony', 'Stonaker' 'NULL'

So I can at least tell if a given user exists or not, but I have no visibility into whether the password they entered into our application is valid in LDAP.

I don't want to pass unencrypted passwords through the network, but then I don't know how to encrypt/compare these passwords without using the .NET Connection or DirectoryEntry, etc objects.

Any thoughts/suggestions are greatly appreciated!

Why do you need to validate credentials on a SQL server?

If a password is entered on a client, then could you validate it there or are you going to do something as that user on a SQL server?

In that case could you impersonate a user on a client and connect to the server?

|||The app that needs this validation cannot validate against LDAP directly; it is a limited custom-built scripting language. It can easily execute queries against its remote SQL Server DB, and we are trying to investigate a solution that will allow us to run a query to validate against LDAP from there. Simply knowing whether or not the user ID/password combination entered into the app matches the Active Directory credentials is sufficient.

Edit: From browsing more formus/docs today, what do you think of using an extended stored procedure? Possibly compile the .NET connection code in a dll and plug it into sql server? From digging through more postings it looks like it might be the most direct route I'll be able to get.

Thanks for the post!
|||That extended procedure did the trick!

We ended up using IADsOpenDSObject:: OpenDSObject for this purpose. We were constrained to using C/C++ and none of the .NET classes, but there was very nice documentation in several places that served as great guides:

http://www.codeproject.com/database/extended_sp.asp
http://msdn2.microsoft.com/en-us/library/aa706065.aspx

I did see where MS noted that "This method should not be used just to validate user credentials," but the link they provided to SSPI authentication was not very helpful.

ALSO, for anyone else jumping through the same hoops, MS noted that the function srv_describe (and its companion srv_ functions) is being removed in future versions of SQL Server:

http://msdn2.microsoft.com/en-us/library/ms164631.aspx

They state to "Use CLR Integration instead," so if anyone has any links to a good reference I'd love to check them out!