Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are there any better alternatives to DotNetOpenAuth? [closed]

Tags:

c#

oauth

openid

I am really really trying to like DotNetOpenAuth, an OpenId, OAuth library for .Net, but it really doesn't cut it for me.
First of all it doesn't seem to work on mono (the examples fail with web.config error or other errors).
Secondly, I don't need 99% of the features of the library, all I want is something simple that takes care of OpenId/OAuth client usage complexity for me. I don't need to write an OpenId server—I just want my users to click on a "login with Google" button :-)

All that I want to do is have a set of buttons for having users login on my web site with (any one is nice, all three bonus):

  • Facebook (does not support OAuth, so it's unlikely)
  • Twitter
  • Google

Are there any simple, usable alternatives that give me something like:

  1. A drop in snippet or component to put in pages
  2. Ideally it would simply set HttpContext.Current.User
  3. Integration with Membership—Basically using membership to track who was on the site before.

?

like image 554
Sklivvz Avatar asked May 08 '11 02:05

Sklivvz


1 Answers

(self-admitted bias alert: author of DotNetOpenAuth)

DotNetOpenAuth has a couple of mono branches that can work, and have worked in the past. You may find that they don't build under mono in Linux, but those branches when built in Windows produce a dotnetopenauth.dll that should be able to run under Linux. But it's been a while since I've done it myself so I can't help you much.

Mono hasn't shown much desire to fix the bugs and fill the feature holes that DotNetOpenAuth runs into when ported to mono, so these mono branches are quite old.

I wanted to call out that your "all I need is a simple client, not the provider" comment seems dangerously ill-informed. No OpenID or OAuth 1.0 client is simple. Getting it right, and secure, is actually a very big job. In addition, once you have the client side (RP) fully supported and secure, adding the server-side (Provider) is actually is actually only a very small addition since RP and OP can share so much code.

So yes, DotNetOpenAuth supports more scenarios than you need. But don't most libraries? Please take a look at An argument for the extra dependency of a library.

And drop a note to the mono developers asking them to fix the bugs and fill the feature holes in mono so that DotNetOpenAuth runs better on it. I've asked them repeatedly, but I guess they need to hear more devs ask for it.

like image 88
Andrew Arnott Avatar answered Oct 12 '22 02:10

Andrew Arnott